/*
* Header:		BlastPileManager.h
* ClassName:	CBlastPileManager
* Author:		MaYuanping
* Date  :		2010.06.10
*/

#pragma once

#include "dmdb.h"
#include "BlastPileConfigurator.h"
#include "BlastPileMesher.h"
#include "BlastPileEstimator.h"
#include "BlastPileOptimizer.h"

class CBlastPile2010;
class CBlastPileManager
{
public:
	CBlastPileManager(CdmDB* pBoundaryDB, CDataTable* pBlastHoleTable, CdmDB* pDisplayDB);
	~CBlastPileManager(void);

public:
	CBlastPileConfigurator* GetConfigurator(void) const { return m_pConfigurator; }
	CBlastPileMesher* GetMesher(void) const { return m_pMesher; }
	CBlastPileEstimator* GetEstimator(void) const { return m_pEstimator; }
	CBlastPileOptimizer* GetOptimizer(void) const  { return m_pOpimizer; }

	bool CreateMesher(CBlastPile2010* pBlastPile = NULL);
	bool CreateEstimator(void);
	bool CreateOptimizer(void);

private:
	

private:
	CdmDB*						m_pBoundaryDB;
	CDataTable*					m_pBlastHoleTable;
	CdmDB*						m_pDisplayDB;
	CBlastPileConfigurator*		m_pConfigurator;
	CBlastPileMesher*			m_pMesher;
	CBlastPileEstimator*		m_pEstimator;
	CBlastPileOptimizer*		m_pOpimizer;
};
